package icasue.tools.sqlhelper.adaptor.ibatis.mapper;

import icasue.reflect.annotations.NotNull;
import icasue.tools.sqlhelper.adaptor.annotation.AutoProvider;
import icasue.tools.sqlhelper.core.Consult;

/**
 * @Author: Qiao Hang
 * @CreateDate: 2021/11/12 上午9:39
 * @UpdateDate:
 * @Description:
 */
public interface Update<JavaType> {
    @AutoProvider(method = "updateByPrimary")
    void updateByPrimary(@NotNull JavaType inst);

    @AutoProvider(method = "updateSmartByPrimary")
    void updateSmartByPrimary(@NotNull JavaType inst);

    @AutoProvider(method = "updateByConsult")
    void updateByConsult(@NotNull JavaType inst, @NotNull Consult<JavaType> consult);

    @AutoProvider(method = "updateSmartByConsult")
    void updateSmartByConsult(@NotNull JavaType inst, @NotNull Consult<JavaType> consult);
}
